package com.ldh.mod4j.businessdomain.generator.hibernate

import com.google.inject.Inject
import org.mod4j.dslcommon.generator.helpers.NameMapper
import org.mod4j.businessdomain.generator.helpers.BusinessClassHelpers
import org.mod4j.businessdomain.generator.helpers.BusinessDomainModelHelpers
import com.ldh.mod4j.businessdomain.businessDomainDsl.BusinessClass
import org.mod4j.dslcommon.xpand.java.JavaComments

class DaoInterface {
	@Inject extension JavaComments javaComments
	
	def daoInterface(BusinessClass clazz)'''
«javaComments.extensionPointHeader("Mod4j BusinessDomainDsl generator: DaoInterface.xtend", clazz)»

package «NameMapper::getBusinessModelDataPackage(BusinessDomainModelHelpers::getModel(clazz).name)»;

/**
 * «NameMapper::javaDaoInterface(clazz.name)» Data Access Object (DAO). Responsible for accessing the database.
 *
 * This interface is intended to be manually changed by developers. 
 * 
 * @author Initially generated by Mod4j
 * 
 */
public interface «NameMapper::javaDaoInterface(clazz.name)» extends «NameMapper::javaDaoBaseInterface(clazz.name)» {
}
'''
}